<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Comment extends Public_Controller {
	
	public function __construct()
	{
		parent::__construct();
	}
	
	public function create()
	{
		// VALIDATION
		$this->load->library('form_validation');
		$this->form_validation->set_rules('message', 'İçerik', 'trim|required|min_length[2]|max_length[1000]|xss_clean|callback__check_login');	
		$this->form_validation->set_rules('relation_id', 'İlgili İçerik', 'trim|required|numeric|callback__check_relation_id');
		
		if(!$this->form_validation->run())
		{
			ajax_response($this->form_validation->error_string());
		}
		
		// CONTINUE
		$data = array(
			'user_id' => $this->auth->uid(),
			'relation_id' => $this->input->post('relation_id'),
			'message' => $this->input->post('message'),
			'created_at' => time()
		);
		
		$this->comment_model->create($data);
		
		ajax_response('İşlem başarıyla tamamlandı', FALSE);
	}

	// CALLBACKS

	public function _check_login()
	{
		if($this->auth->is_logged_in() !== TRUE)
		{
			$this->form_validation->set_message('_check_login', 'Bu işlem için giriş yapmış olmanız gerekiyor.');
			return FALSE;
		}
		
		return TRUE;
	}
	
	// Yapılan yorumun gerçekten bir içeriğe yapılıp yapılmadığı kontrol eder
	public function _check_relation_id()
	{
		if(!$this->entry_model->count(array('id' => $this->input->post('relation_id'))))
		{
			$this->form_validation->set_message('_check_relation_id', 'Böyle bir içerik yok!');
			return FALSE;
		}
		
		return TRUE;
	}
}

/* End of file comment.php */
